An enterprise wide database system is one that makes interdepartmental data available throughout an enterprise having geographically separated nodes that are connected together, for example by a local area network (LAN) or a wide area network (WAN). These systems typically employ a number of different, individual databases connected to the system that are often produced by different vendors. This set of circumstances causes a number of problems.
Forms are used in typical databases to provide users with an abstract "view" of that database. This user view hides the complexity of the underlying data structures from the user, provides a level of data independency and an easy data entry environment. However, in typical databases, the generation and creation of such views, the maintenance of the database and the updating of the database are costly, cumbersome and problematic. For example, to generate a view, a user is required to have a high level of knowledge about a particular database, a solid understanding of the underlying structures and the complex relationships among the data, and must have practical training and experience with the vendor specific forms for that particular database. There is therefore a problem with vendor monopoly, since users are often reluctant to change a database management system due to the extensive conversion process and training costs involved.
Another concern is data independency since most forms of typical databases use "joins" (relational join operations) of tables to present a unified view of data for an easy data entry environment. Very few such views can be correctly updated because an update in one view can be translated to more than update in the base relations. Furthermore, if there is a change or reorganization in the underlying data (i.e., the base tables), all the forms, including their definition, update algorithm and presentation, may have to change requiring major reworking in their definition.
A third problem in the prior art is that of ease of use and maintenance. A modification of a form (e.g., adding a new field, or changing syntax or semantic in a particular field) is time consuming and costly. This is due to the static nature of the typical definition and processing algorithm for forms. This requirement of maintaining an engine for each form, as well as for vendor specific forms, presents a major software maintenance need.